メイン 迷える子羊の部屋【初心者専用】
Function.call について | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| 葛 | Åê¹ÆNo.40975 投稿日時: 2008-12-9 9:52 |
半人前 ![]() ![]() 居住地: 福岡 投稿: 33
使用環境:
WinXP Pro8.0 AS2.0 |
Function.call について いつも勉強させてもらっています。
今回as2.0のリファレンスに気になるものがあったので試してみました。 B が myMethod.call(null, obj); と同じ処理だ、というところまでは辿り着いたのですが A が true を返し B が false を返す違いがよく理解できません。 たぶんアクセス経路(参照先?)が違うのかなと思うのですが、その道順が描けません。 私の頭の中ではどちらも同じ目的地に行こうとしています……。 書きながらも考えているのですが、こんがらがってきました。 どちらも obj は渡していますよね。ん?obj 自身に目的地を設定しているのが A で B の目的地は myMethod() だということでしょうか。 |
| ひろゆき | Åê¹ÆNo.40976 投稿日時: 2008-12-9 10:43 |
ちょんまげら ![]() ![]() 居住地: 大阪密林 投稿: 3492
使用環境:
10.3.9Flex 2 SDK ![]() Pro8.0 Pro7.2FlashPlayer 7.0r24/8.0r24/9.0r115 Safari 1.3.2 Firefox 2.0.0.20 MacOS 9.2.2 Flash 4/5 |
Re: Function.call について 引用:
kazurasakaさんは書きました: 関数内でのthis, obj がそれぞれ何を指しているのか、traceしてみては? Bは、myMethod.call(this, obj) と同じだと思いますけど。
|
| 野中文雄 | Åê¹ÆNo.40977 投稿日時: 2008-12-9 11:04 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4166
使用環境:
CS4 .4.11 Vista Home Premium (SP1) |
Re: Function.call について スクリプトに以下の修正を加えたうえで、CとDの[出力]結果も併せてご参照ください。
引用: kazurasakaさんは書きました: なお、つぎのEのステートメントを加えれば、「B が myMethod.call(null, obj); と同じ処理」ではないことが確かめられます。 |
| 葛 | Åê¹ÆNo.40978 投稿日時: 2008-12-9 11:48 |
半人前 ![]() ![]() 居住地: 福岡 投稿: 33
使用環境:
WinXP Pro8.0 AS2.0 |
Re: Function.call について 返信ありがとうございます。
ひろゆきさんと野中さんの助言を受けて下記コードを試してみました。 結果 まだ血肉にはなっていませんが、なんとなく解りました。 Bは「同じ処理」ではなく「false という結果が同じ」ということですね。 ActionScript 2.0リファレンス引用: 関数をオブジェクトのメソッドとして呼び出さずに通常の関数として呼び出すには、thisObject パラメータに値 null を渡します。 「関数呼び出しは同じ」という記述で勘違いしたようです。 勘違いのままでいるところでした。 ありがとうございました。 |
| 野中文雄 | Åê¹ÆNo.40979 投稿日時: 2008-12-9 12:10 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4166
使用環境:
CS4 .4.11 Vista Home Premium (SP1) |
Re: Function.call について それでは、もう少し補足します。以下の追加テストのA'とC'の結果は、それぞれA、Cと同じです。逆にいえば、Function.call()メソッドは、オブジェクトに定義されたメソッドと同じ呼出し結果を得るために用いられます。
参考:「Buttonのthis」 引用: kazurasakaさんは書きました: Dは、以下のようにすべきでしたね(先の回答には[追記]で修正を加えました)。 引用: ※BとDは重複していた為Dを残してあります。 |
| 葛 | Åê¹ÆNo.41003 投稿日時: 2008-12-12 8:58 |
半人前 ![]() ![]() 居住地: 福岡 投稿: 33
使用環境:
WinXP Pro8.0 AS2.0 |
Re: Function.call について 野中さん、返信ありがとうございます。
今、少々時間が取り難いので、落ち着いた後に試して追記したいと思います。 まずはお礼まで。ありがとうございました。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン


Pro8.0 AS2.0

10.3.9
Pro7.2

Vista Home Premium (SP1)

